package com.prd.model;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.util.Date;
import java.util.Objects;

/**
 * <p>
 * 客户-客人总表
 * </p>
 *
 * @author o1
 * @since 2023-12-12
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("customer_guest")
public class CustomerGuestDO implements Serializable {

    private static final long serialVersionUID = 1L;

      @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 客人编号
     */
    private String guestNo;

    /**
     * 联系人/客人名称
     */
    private String guestName;

    /**
     * 电话
     */
    private String guestPhone;

    /**
     * 邮箱
     */
    private String guestEmail;

    /**
     * ws
     */
    private String guestWx;

    /**
     * 部门
     */
    private String guestDepartment;

    /**
     * 职务
     */
    private String guestJob;

    /**
     * 决策层级: 主决策人1，副决策人2，影响人3，其他4，不定义5
     */
    private Integer guestJobLevelId;

    /**
     * 客人类别: A类1，B类2，C类3 ...
     */
    private Integer guestLevel;

    /**
     * 客人效益
     */
    private Integer guestBenefits;

    /**
     * 客人地址
     */
    private String guestAddress;

    /**
     * 客人状态：洽谈中客人...
     */
    private Integer guestStatus;

    /**
     * 客人行业
     */
    private String guestIndustry;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 备注
     */
    private String guestRemark;

    /**
     * 业务负责人id
     */
    private String businessManagerId;

    /**
     * 业务部门
     */
    private String businessDepartment;

    /**
     * 业务部门id
     */
    private String businessDepartmentId;

    /**
     * 业务负责人
     */
    private String businessManager;

    /**
     * 业务负责人电话
     */
    private String businessPhone;

    /**
     * 业务进度
     */
    private Integer businessStatus;

    /**
     * 最后来往日期
     */
    private Date lastBusinessDay;

    /**
     * 从属客户(公司)编号
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String customerNo;


    /**
     * '是否为初次简易报备, 是1
     */
    private Integer isSimple;

    /**
     * 状态：正常0，公共资源库1，已销户2，已隐藏3
     */
    private Integer status;

    @Override
    public int hashCode() {
        return Objects.hashCode(guestName + guestPhone) & Integer.MAX_VALUE;
    }
}
